// pages/course/courseOnline/life/life.js
let app=getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
   url:'',
   pageNum:1,
   pageSize:10,
   wisdomlife:[],
   pages:0,
   minPrice:'',
   maxPrice:'',
   mainOptions: [
    { key: 'default', label: '综合排序', active: true },
    { key: 'popularity', label: '人气', active: false },
    { key: 'rating', label: '好评率', active: false }
    ],
    priceExpanded: false,
    priceRangeExpanded: false,
    priceSortType: 'asc', // 'asc' 或 'desc'
    priceRanges: [
    { value: 'free', label: '免费', active: true },
    { value: '0-50', label: '¥50以下', active: false },
    { value: '50-100', label: '¥50-100', active: false },
    { value: '100-500', label: '¥100-500', active: false },
    { value: '500-1000', label: '¥500-1000', active: false },
    { value: '1000+', label: '¥1000以上', active: false }
    ]
  },
 getwisdomlife(){
  wx.showLoading({
    title:'正在加载中...'
  })
  wx.request({
    url:this.data.url+'course/page',
    method:'GET',
    data:{
     pageNum:this.data.pageNum,
     pageSize:this.data.pageSize
    },
    success:resp=>{
      this.setData({
      wisdomlife:[...this.data.wisdomlife,...resp.data.data.list],
      pages:resp.data.data.pages
     })
    },
    complete(){
      wx.hideLoading()
      //停止下拉刷新
      wx.stopPullDownRefresh()
    }
  })
 },
 // 点击顶部排序项（综合、人气、好评率）
onMainOptionTap(e) {
  let key = e.currentTarget.dataset.key;
  let mainOptions = this.data.mainOptions.map(item =>
  item.key === key ? { ...item, active: true } : { ...item, active: false });
  this.setData({ mainOptions });
  // TODO: 触发对应排序逻辑
  this.setData({
  priceRangeExpanded: false, // 关闭价格区间
  priceExpanded: false // 关闭价格排序
  })
  },
  // 点击“价格”
  onPriceTap() {
  this.setData({
  priceExpanded: !this.data.priceExpanded,
  priceRangeExpanded: false // 关闭价格区间
  });
  },
  // 点击“价格区间”
  onPriceRangeTap() {
  this.setData({
  priceRangeExpanded: !this.data.priceRangeExpanded,
  priceExpanded: false // 关闭价格排序
  });
  },
  // 点击价格升序/降序 → 直接触发，无需确定按钮
  onPriceSortSelected(e) {
  const type = e.currentTarget.dataset.type;
  this.setData({ priceSortType: type });
  this.onPriceSortConfirmed(type); // 直接调用处理函数
  },
  onPriceSortConfirmed(type) {
  console.log('价格排序选中:', type);
  // TODO: 执行价格排序逻辑，比如调用接口或本地排序
  this.setData({
    pageNum: 1,
    wisdomlife: [] // 清空旧数据
  });
  if(type=='desc'){
 
    wx.request({
      url: this.data.url+'course/sort',
      data:{
        pageNum:this.data.pageNum,
        pageSize:this.data.pageSize
      },
      success:resp=>{
        console.log(resp.data.data.list);
      this.setData({
        wisdomlife:[...this.data.wisdomlife,...resp.data.data.list],
        pages:resp.data.data.pages
      })
      }
    })
  }else if(type=='asc'){
    wx.request({
      url: this.data.url+'course/sorta',
      data:{
        pageNum:this.data.pageNum,
        pageSize:this.data.pageSize
      },
      success:resp=>{
        console.log(resp.data.data.list);
      this.setData({
        wisdomlife:[...this.data.wisdomlife,...resp.data.data.list],
        pages:resp.data.data.pages
      })
      }
    })
  }
},
  // 点击价格区间选项 → 直接触发
  onPriceRangeSelected(e) {
  const value = e.currentTarget.dataset.value;
  let priceRanges = this.data.priceRanges.map(item =>
  item.value === value ? { ...item, active: true } : { ...item, active:
  false }
  );
  this.setData({ priceRanges });
  this.onPriceRangeConfirmed(value); // 直接调用处理函数
  },
  onPriceRangeConfirmed(value) {
  console.log('价格区间选中:', value);
  // TODO: 执行价格区间筛选逻辑
        // 解析价格区间
        let minPrice = '';
        let maxPrice = '';
      
        switch (value) {
          case 'free':
            minPrice = 0;
            maxPrice = 0;
            break;
          case '0-50':
            minPrice = 0;
            maxPrice = 50;
            break;
          case '50-100':
            minPrice = 50;
            maxPrice = 100;
            break;
          case '100-500':
            minPrice = 100;
            maxPrice = 500;
            break;
          case '500-1000':
            minPrice = 500;
            maxPrice = 1000;
            break;
          case '1000+':
            minPrice = 1000;
            maxPrice = ''; // 表示无上限
            break;
          default:
            minPrice = '';
            maxPrice = '';
            break;
        }
        // 更新 data 中的 minPrice 和 maxPrice（可选，便于调试）
        this.setData({
          minPrice,
          maxPrice,
          pageNum: 1, // 重置页码
          wisdomlife: []  // 清空旧数据
        });
      
        // 发起请求
        wx.request({
          url: this.data.url + 'course/bypricerange',
          data: {
            pageNum: this.data.pageNum,
            pageSize: this.data.pageSize,
            minPrice,
            maxPrice
          },
          success: (resp) => {
            if (resp.data && resp.data.data && resp.data.data.list) {
              console.log('价格区间请求成功:', resp.data.data.list);
              this.setData({
                wisdomlife: [...this.data.wisdomlife, ...resp.data.data.list],
                pages: resp.data.data.pages
              });
            } else {
              console.warn('接口返回数据格式异常:', resp);
              this.setData({
                wisdomlife: [],
                pages: 1
              });
            }
          },
          fail: (err) => {
            console.error('请求失败:', err);
            wx.showToast({
              title: '请求失败',
              icon: 'none'
            });
          }
        });
  },
  onPriceRangeConfirm() {
  // 获取当前选中的价格区间
  const active = this.data.priceRanges.find(item => item.active);
  if (active) {
  this.onPriceRangeConfirmed(active.value);
  }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      url:app.globalData.url
    })
    this.getwisdomlife()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      pageNum:1,
      pageSize:10,
      wisdomlife:[],
      pages:0
     })
     this.getconsultant()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.setData({
      pageNum:this.data.pageNum+1
   })
   if(this.data.pageNum>this.data.pages){
     wx.showToast({
       title: '没有更多数据了',
     })
     return;
   }
   this.getwisdomlife()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})